import os

class BaseConfig:  # 基本配置类
    # 项目名
    FLASK_APP = os.getenv('FLASK_APP', 'Ledger')
    # 调式
    DEBUG = True  # Turns on debugging features in Flask
    # 热更新
    TEMPLATES_AUTO_RELOAD = True
    BCRYPT_LEVEL = 12  # Configuration for the Flask-Bcrypt extension
    MAIL_FROM_EMAIL = ""  # For use in application emails
    # 各种第三方key
    SECRET_KEY = os.getenv('SECRET_KEY', 'Sm9obiBTY2hyb20ga2lja3MgYXNz')
    STRIPE_API_KEY = os.getenv('STRIPE_API_KEY', 'SmFjb2IgS2FwbGFuLU1vc3MgaXMgYSBoZXJv')
    # sql
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:root@127.0.0.1:3306/ledger?charset=utf8mb4"
    # 关闭数据追踪，避免内存资源浪费
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 输出查询语句
    SQLALCHEMY_ECHO = False
    # 数据库连接池的大小。默认是数据库引擎的默认值 （通常是 5）。
    # 控制在连接池达到最大值后可以创建的连接数。当这些额外的连接使用后回收到连接池后将会被断开和抛弃。保证连接池只有设置的大小；
    SQLALCHEMY_ENGINE_OPTIONS = {
        'pool_recycle': 90,
        'pool_timeout': 900,
        'pool_size': 10,
        'max_overflow': 5,
    }
    # sqlacodegen mysql+pymysql://root:Sx3jdCwhCZAmxWie@47.96.13.76:3306/xycmf_xi_yi_net
    # redis 配置
    REDIS_URL = 'redis://127.0.0.1:6379/0'

class DevelopmentConfig(BaseConfig):
    # 调式
    DEBUG = True

class ProductionConfig(BaseConfig):
    # 调式
    DEBUG = False
    # 热更新
    TEMPLATES_AUTO_RELOAD = False
    # 关闭数据追踪，避免内存资源浪费
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 输出查询语句
    SQLALCHEMY_ECHO = False


config={
    'dev': DevelopmentConfig,
    'prod': ProductionConfig,
}
